// 区间加法+单点查询
// 本质还是一个动态求前缀和的问题
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 100010;
typedef long long LL;
LL a[N];
int n, m;

int lowbit(int x) { return x & -x; }

void add(int x, int y)
{
    for(int i = x; i <= n; i += lowbit(i)) a[i] += y;
}

LL sum(int x)
{
    LL res = 0;
    for(int i = x; i; i -= lowbit(i))
        res += a[i];
    return res;

}

int main()
{
    cin >> n >> m;
    for(int i = 1; i <= n; ++i)
    {
        int tmp; cin >> tmp;
        add(i, tmp), add(i + 1, -tmp);
    }
    for(int i = 0; i < m; ++i)
    {
        char op;
        cin >> op;
        if(op == 'Q')
        {
            int x;
            cin >> x;
            cout << sum(x) << endl;
        }
        else{
            int x, y, d;
            cin >> x >> y >> d;
            add(x, d), add(y + 1, -d);
        }
    }
    return 0;
}
